//Acondiciona entrada a IFFT y crea el objeto de la clase ofdm que implementa la IFFT y agrega el prefijo ciclico.

//Crea el objeto OFDM a utilizarse según el ancho de banda del sistema y el largo del prefijo cíclico necesario

void objeto_ofdm(double ancho_de_banda, OFDM &ofdm) {

    if (ancho_de_banda==1.4)
         ofdm=OFDM(128,32,1);
        else if (ancho_de_banda==3)
             ofdm=OFDM(256,64,1);
            else if (ancho_de_banda==5)
                 ofdm=OFDM(512,128,1);
                else if (ancho_de_banda==10)
                     ofdm=OFDM(1024,256,1);
                    else if (ancho_de_banda==15)
                         ofdm=OFDM(1536,384,1);
                        else //if (ancho_de_banda==20)
                             ofdm=OFDM(2048,512,1);

}


//Entrada a la ifft: cvec simbolos_modulados, salida de la ifft: output
void bloque_ofdm_modulador(cvec simbolos_modulados,cvec &muestras_tiempo_cp,OFDM &ofdm ){


//<<<<<<< .mine
    //Acondicionar entrada para la ifft.Probando cambios en el svn. Que pasa si cambio al mismo tiempo.
//=======
    //Acondicionar entrada para la ifft.Probando cambios en el svn. Otros cambios
//>>>>>>> .r6
    int n=ofdm.no_carriers();
    cout<<n<<endl;
    cvec entrada_ifft=concat(simbolos_modulados, zeros_c((n-simbolos_modulados.length())));

ofdm.modulate(entrada_ifft, muestras_tiempo_cp);


}



void bloque_ofdm_demodulador(cvec &in_fft, cvec &simbolos_a_dem,OFDM &ofdm, int Nro_simbolos_modulados ){
    cvec outtemp; //salida de la fft con Nfft+Ncp elementos
    ofdm.demodulate(in_fft, outtemp);
    simbolos_a_dem=outtemp.mid(0,Nro_simbolos_modulados);


}
